import jdk.nashorn.internal.ir.IfNode;

public class MST0106 {
    /**
     * 面试题 01.06. 字符串压缩
     * 字符串压缩。利用字符重复出现的次数，编写一种方法，实现基本的字符串压缩功能。比如，字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短，则返回原先的字符串。你可以假设字符串中只包含大小写英文字母（a至z）。
     * 示例1:
     *  输入："aabcccccaaa"
     *  输出："a2b1c5a3"
     * 示例2:
     *  输入："abbccd"
     *  输出："abbccd"
     *  解释："abbccd"压缩后为"a1b2c2d1"，比原字符串长度更长。
     * 提示：
     */
    public String compressString(String S) {

        if (S.length()<3){
            return S;
        }
        char [] a=S.toCharArray();
        StringBuilder stringBuilder=new StringBuilder();
        char a1=a[0];
        int num=1;
        for (int i=1;i<a.length;i++){
            if (a[i]!=a1){
                stringBuilder.append(a1);
                a1=a[i];
                stringBuilder.append(num);
                num=1;

            }else {
                num++;
            }
        }
        stringBuilder.append(a1);
        stringBuilder.append(num);
        if (stringBuilder.length()<S.length()){
            return stringBuilder.toString();
        }else {
            return  S;
        }
    }
}
